package uk.ac.lkl.common.associator.event;



/**
 * A listener to an associator.
 * 
 * @param the
 *            left element type
 * @param the
 *            annotation type
 * @param the
 *            right element type
 * 
 * @author Darren Pearce
 * @version $Revision: 356 $
 * @version $Date: 2007-10-30 16:03:32 +0000 (Tue, 30 Oct 2007) $
 * 
 */
public interface AssociatorListener<L, A, R> {

    /**
     * Called when an association is added.
     * 
     * @param e
     *            the association event
     * 
     */
    public void associationAdded(AssociatorEvent<L, A, R> e);


    /**
     * Called when an annotation is changed.
     * 
     * @param e
     *            the association event
     * 
     */
    public void annotationChanged(AssociatorEvent<L, A, R> e);


    /**
     * Called when an association is removed.
     * 
     * @param e
     *            the association event
     * 
     */
    public void associationRemoved(AssociatorEvent<L, A, R> e);

}
